﻿using Microsoft.EntityFrameworkCore;

namespace Quick.EntityFrameworkCore.Options;

public class DatabaseProviderOptions<T> : IDatabaseProviderOptions<T>
{
    private Action<T> _action { get; set; }
    public DatabaseProviderOptions(Action<T> action)
    {
        _action = action;
    }

    public void Configure(T t)
    {
        _action(t);
    }
}

public class DatabaseProviderOptions<TDbContext, T> : DatabaseProviderOptions<T>
{
    public DatabaseProviderOptions(Action<T> action) : base(action)
    {
    }
}

public interface IDatabaseProviderOptions<TDbContext, T> : IDatabaseProviderOptions<T>
    where TDbContext : DbContext
{

}

public interface IDatabaseProviderOptions<T>
{
    void Configure(T t);
}